List of performance analysis tools
This is a list of performance analysis tools for use in software development.
Multiple languages
The following tools work for multiple languages or binaries.
- Acumem SlowSpotter and Acumem ThreadSpotter are tools from Acumem, which diagnose performance problems related to data locality, cache utilization and thread interactions. Supports most compiled languages on Linux and Solaris including Ada.
- AQtime is a performance profiler and memory/resource debugging toolset for .NET 1.0, 1.1, 2.0, 3.0, 3.5 applications (including ASP.NET applications), Windows 32- and 64-bit applications including C, C++, Delphi for Win32 and VBScript and JScript functions.
- CodeAnalyst as a free GUI based code profiler for AMD hardware x86 based machines from AMD.
- Caliper is a profiling tool from HP for application running on HP-UX with Intel Itanium Integrity platform (IA-64).
- DevPartner is Micro Focus's test suite for both .NET and Java that automatically detects and diagnoses software defects and performance problems.
- DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris, it has since been released under the free Common Development and Distribution License (CDDL) and has been ported to several other Unix-like systems.
- DynInst is an api to allow dynamic injection of code into a running program.
- gprof, the GNU Profiler, is part of GNU Binutils (which are part of the GNU Project). A set of visualization tools, VCG tools, uses the Call Graph Drawing Interface (CGDI) to interface with gprof. Another visualization tool which interfaces with gprof is KProf. gprof works for any language supported by the GNU Compiler Collection (gcc).
- Linux Trace Toolkit collects data on processes blocking, context switches, and execution time. This helps identify performance problems over multiple processes or threads.
- nmon (short for Nigel's Monitor) is a popular system monitor tool for the AIX and Linux operating systems.
- OProfile is a sampling profiler for Linux that counts cache misses, stalls, memory fetches, etc. It profiles everything running on the Linux system, including hard-to-profile programs such as interrupt handlers and the kernel itself.[1]
- Paraver is a performance analysis tool based on trace files. It allows viewing the progress of the application in a temporal axis and also perform accumulation of performance metrics in a table like regular profilers.
- PGPROF from The Portland Group provides sampling and compiler-based instrumentation for application profiling of C, C++, and Fortran applications using OpenMP and MPI parallelism on Linux, Windows, and Mac.
- PmcTools provides FreeBSD's developers and system administrators with non-intrusive, low-overhead and innovative ways of measuring and analysing system performance. It exploits the same underlying counters as Linux' OProfile.
- PAPI is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors.
- Rational PurifyPlus is a performance profiling tool for Windows, Linux, Solaris and AIX, in addition to being a memory debugger and code coverage tool.
- 'Shark is Apple's free performance analyzer for Macintosh executables. Works on x86 and power. Can use hardware perfmons.
- Sysprof is a sampling CPU profiler for Linux that uses a kernel module to profile the entire system, as opposed to a single application. It displays the time spent in each branch of the applications' calltrees.[2]
- Systemtap is a programmable system tracing/probing tool for Linux. It may be scripted to generate time- or performance-counter- or function-based profiles of the kernel and/or its userspace.
- Valgrind is a GPL'd system for debugging and profiling x86-Linux programs. It supports tools to either detect memory management and threading bugs, or profile performance. It works for any language and the assembler. KCacheGrind, valkyrie and alleyoop are front-ends for valgrind.
- VTune Amplifier XE is Intel Corporation's tool for serial and threaded performance analysis. It works with C/C++/Fortran/.NET/Java and other applications on Linux or Windows. Hotspot, call tree and threading analysis works on both Intel and AMD x86 processors. Hardware event sampling that uses the on chip performance monitoring unit requires an Intel processor.
- Zoom is a graphical and command-line statistical (event-based) profiler for Linux from RotateRight. It supports most compiled languages on both PowerPC and x86 processors.
Ada
- Acumem SlowSpotter and Acumem ThreadSpotter
- AdaNav sometimes bundled with ObjectAda
- NightTrace and the instrumented RedHawk Linux kernel from Concurrent Computer Corporation
- RootCause from OC Systems
C and C++
- Acumem SlowSpotter and Acumem ThreadSpotter
- CodeAnalyst is a free performance analyzer from Advanced Micro Devices for programs on AMD hardware. It also does basic timer-based profiling on Intel processors.
- CodeTune is a free, easy to use, GUI-based profiler for Windows applications
- DTrace dynamic tracing tool for Solaris, FreeBSD, Mac OS X and other operating systems.
- GlowCode is a performance and memory profiler for C++, C# and other .NET languages. It identifies time-intensive functions and detects memory leaks and errors in native, managed and mixed Windows x64 and x86 applications.
- Insure++ is Parasoft's runtime memory analysis and error detection tool. Its Inuse component provides a graphical view of memory allocations over time, with specific visibility into overall heap usage, block allocations, possible outstanding leaks, etc.
- Parallel Studio from Intel contains Parallel Amplifier, which tunes both serial and parallel programs. It also includes Parallel Inspector, which detects races, deadlocks and memory errors. Parallel Composer includes codecov, a command line coverage tool.
- Very Sleepy, a simple yet effective profiler which can profile any native Windows application with built-in debugging information (without need for recompilation). It is released under GPL.
- Visual Studio Team System Profiler is Microsoft's commercial profiler
- VTune from Intel for optimizing performance across Intel architectures.
- Google-PerfTools which you can test Heap, CPU and Memory. Has some problems on 64 bit Linux (libunwind problem).
Delphi
Java
- AppPerfect Java Profiler see [1]
- CollectionSpy, a profiler that focuses exclusively on the Java Collections Framework.
- Eclipse Memory Analyzer, a memory analysis tool that also has some performance related features.
- Eclipse TPTP
- JProbe, an enterprise class Java profiler by Quest Software
- JProfiler
- JRockit Mission Control, a profiler with low overhead.
- mBProfiler, a profiler suitable for embedded devices
- Netbeans Profiler, a profiler integrated into the NetBeans IDE (internally uses jvisualvm profiler)
- OKTECH Profiler, an open-source, sampling and instrumentation Java profiler for Java 5+ applications; local or remote profiling; optional commercial support.
- RootCause and RTI from OC Systems
- VisualVM is the profiler which comes with the Java Development Kit, it supports all needed features.
JavaScript
- AjaxView is a free profiling tool for JavaScript by Microsoft Research.
- Firebug is a Firefox plug-in for web development, also has a profiler for JavaScript.
- Web Inspector, a built-in tool in Webkit based browsers like Apple Safari 3+ and Google Chrome also has a profiler for Javascript
- Google Speed Tracer part of Google Web Toolkit is a more detailed performance analysis tool capable of capturing in-depth data from browser rendering to Javascript profiling. Although, it is currently available only for developer versions of Google Chrome.
.NET
- CLR Profiler is a free memory profiler provided by Microsoft for CLR applications.
- EQATEC Profiler is a performance profiler for .NET, Windows Phone7, .NET CF and Silverlight, free and licensed versions
- GlowCode is a performance and memory profiler for .NET applications using C# and other .NET languages. It identifies time-intensive functions and detects memory leaks and errors in native, managed and mixed Windows x64 and x86 applications.
- JetBrains dotTrace Profiler, a commercial performance and memory profiler for .NET
- NProf NProf was an open source statistical profiler for .NET. It is no longer actively developed [3]
- Red Gate ANTS Performance Profiler is a commercial profiler for .NET
- SlimTune A free profiling and performance tuning tool for .NET applications with an open source MIT License
- SpeedTrace Pro is a commercial performance analysis and tracing tool for .NET
- Telerik JustTrace is a commercial performance and memory profiler for .NET
- Visual Studio
Oracle Database
- Method R Profiler is a commercial response time profiler for Oracle SQL trace files.
- MR Tools is a commercial suite of utilities for manipulating and mining Oracle SQL trace files.
- MR Trace is a commercial extension for Oracle SQL Developer that collects and manages Oracle SQL trace files.
- tkprof is a command-line utility distributed by Oracle Corporation, which formats Oracle SQL trace output into human readable format.
PHP
- Dbg
- Xdebug is a PHP extension which provides debugging and profiling capabilities.
See also
References
External links